package manage.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class PositionExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PositionExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andPidIsNull() {
            addCriterion("pid is null");
            return (Criteria) this;
        }

        public Criteria andPidIsNotNull() {
            addCriterion("pid is not null");
            return (Criteria) this;
        }

        public Criteria andPidEqualTo(Integer value) {
            addCriterion("pid =", value, "pid");
            return (Criteria) this;
        }

        public Criteria andPidNotEqualTo(Integer value) {
            addCriterion("pid <>", value, "pid");
            return (Criteria) this;
        }

        public Criteria andPidGreaterThan(Integer value) {
            addCriterion("pid >", value, "pid");
            return (Criteria) this;
        }

        public Criteria andPidGreaterThanOrEqualTo(Integer value) {
            addCriterion("pid >=", value, "pid");
            return (Criteria) this;
        }

        public Criteria andPidLessThan(Integer value) {
            addCriterion("pid <", value, "pid");
            return (Criteria) this;
        }

        public Criteria andPidLessThanOrEqualTo(Integer value) {
            addCriterion("pid <=", value, "pid");
            return (Criteria) this;
        }

        public Criteria andPidIn(List<Integer> values) {
            addCriterion("pid in", values, "pid");
            return (Criteria) this;
        }

        public Criteria andPidNotIn(List<Integer> values) {
            addCriterion("pid not in", values, "pid");
            return (Criteria) this;
        }

        public Criteria andPidBetween(Integer value1, Integer value2) {
            addCriterion("pid between", value1, value2, "pid");
            return (Criteria) this;
        }

        public Criteria andPidNotBetween(Integer value1, Integer value2) {
            addCriterion("pid not between", value1, value2, "pid");
            return (Criteria) this;
        }

        public Criteria andPnameIsNull() {
            addCriterion("pname is null");
            return (Criteria) this;
        }

        public Criteria andPnameIsNotNull() {
            addCriterion("pname is not null");
            return (Criteria) this;
        }

        public Criteria andPnameEqualTo(String value) {
            addCriterion("pname =", value, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameNotEqualTo(String value) {
            addCriterion("pname <>", value, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameGreaterThan(String value) {
            addCriterion("pname >", value, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameGreaterThanOrEqualTo(String value) {
            addCriterion("pname >=", value, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameLessThan(String value) {
            addCriterion("pname <", value, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameLessThanOrEqualTo(String value) {
            addCriterion("pname <=", value, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameLike(String value) {
            addCriterion("pname like", value, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameNotLike(String value) {
            addCriterion("pname not like", value, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameIn(List<String> values) {
            addCriterion("pname in", values, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameNotIn(List<String> values) {
            addCriterion("pname not in", values, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameBetween(String value1, String value2) {
            addCriterion("pname between", value1, value2, "pname");
            return (Criteria) this;
        }

        public Criteria andPnameNotBetween(String value1, String value2) {
            addCriterion("pname not between", value1, value2, "pname");
            return (Criteria) this;
        }

        public Criteria andPositionrequireIsNull() {
            addCriterion("positionrequire is null");
            return (Criteria) this;
        }

        public Criteria andPositionrequireIsNotNull() {
            addCriterion("positionrequire is not null");
            return (Criteria) this;
        }

        public Criteria andPositionrequireEqualTo(String value) {
            addCriterion("positionrequire =", value, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireNotEqualTo(String value) {
            addCriterion("positionrequire <>", value, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireGreaterThan(String value) {
            addCriterion("positionrequire >", value, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireGreaterThanOrEqualTo(String value) {
            addCriterion("positionrequire >=", value, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireLessThan(String value) {
            addCriterion("positionrequire <", value, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireLessThanOrEqualTo(String value) {
            addCriterion("positionrequire <=", value, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireLike(String value) {
            addCriterion("positionrequire like", value, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireNotLike(String value) {
            addCriterion("positionrequire not like", value, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireIn(List<String> values) {
            addCriterion("positionrequire in", values, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireNotIn(List<String> values) {
            addCriterion("positionrequire not in", values, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireBetween(String value1, String value2) {
            addCriterion("positionrequire between", value1, value2, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositionrequireNotBetween(String value1, String value2) {
            addCriterion("positionrequire not between", value1, value2, "positionrequire");
            return (Criteria) this;
        }

        public Criteria andPositioncountIsNull() {
            addCriterion("positioncount is null");
            return (Criteria) this;
        }

        public Criteria andPositioncountIsNotNull() {
            addCriterion("positioncount is not null");
            return (Criteria) this;
        }

        public Criteria andPositioncountEqualTo(Integer value) {
            addCriterion("positioncount =", value, "positioncount");
            return (Criteria) this;
        }

        public Criteria andPositioncountNotEqualTo(Integer value) {
            addCriterion("positioncount <>", value, "positioncount");
            return (Criteria) this;
        }

        public Criteria andPositioncountGreaterThan(Integer value) {
            addCriterion("positioncount >", value, "positioncount");
            return (Criteria) this;
        }

        public Criteria andPositioncountGreaterThanOrEqualTo(Integer value) {
            addCriterion("positioncount >=", value, "positioncount");
            return (Criteria) this;
        }

        public Criteria andPositioncountLessThan(Integer value) {
            addCriterion("positioncount <", value, "positioncount");
            return (Criteria) this;
        }

        public Criteria andPositioncountLessThanOrEqualTo(Integer value) {
            addCriterion("positioncount <=", value, "positioncount");
            return (Criteria) this;
        }

        public Criteria andPositioncountIn(List<Integer> values) {
            addCriterion("positioncount in", values, "positioncount");
            return (Criteria) this;
        }

        public Criteria andPositioncountNotIn(List<Integer> values) {
            addCriterion("positioncount not in", values, "positioncount");
            return (Criteria) this;
        }

        public Criteria andPositioncountBetween(Integer value1, Integer value2) {
            addCriterion("positioncount between", value1, value2, "positioncount");
            return (Criteria) this;
        }

        public Criteria andPositioncountNotBetween(Integer value1, Integer value2) {
            addCriterion("positioncount not between", value1, value2, "positioncount");
            return (Criteria) this;
        }

        public Criteria andFabutimeIsNull() {
            addCriterion("fabutime is null");
            return (Criteria) this;
        }

        public Criteria andFabutimeIsNotNull() {
            addCriterion("fabutime is not null");
            return (Criteria) this;
        }

        public Criteria andFabutimeEqualTo(Date value) {
            addCriterionForJDBCDate("fabutime =", value, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabutimeNotEqualTo(Date value) {
            addCriterionForJDBCDate("fabutime <>", value, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabutimeGreaterThan(Date value) {
            addCriterionForJDBCDate("fabutime >", value, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabutimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("fabutime >=", value, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabutimeLessThan(Date value) {
            addCriterionForJDBCDate("fabutime <", value, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabutimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("fabutime <=", value, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabutimeIn(List<Date> values) {
            addCriterionForJDBCDate("fabutime in", values, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabutimeNotIn(List<Date> values) {
            addCriterionForJDBCDate("fabutime not in", values, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabutimeBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("fabutime between", value1, value2, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabutimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("fabutime not between", value1, value2, "fabutime");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiIsNull() {
            addCriterion("fabuzhuangtai is null");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiIsNotNull() {
            addCriterion("fabuzhuangtai is not null");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiEqualTo(Integer value) {
            addCriterion("fabuzhuangtai =", value, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiNotEqualTo(Integer value) {
            addCriterion("fabuzhuangtai <>", value, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiGreaterThan(Integer value) {
            addCriterion("fabuzhuangtai >", value, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiGreaterThanOrEqualTo(Integer value) {
            addCriterion("fabuzhuangtai >=", value, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiLessThan(Integer value) {
            addCriterion("fabuzhuangtai <", value, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiLessThanOrEqualTo(Integer value) {
            addCriterion("fabuzhuangtai <=", value, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiIn(List<Integer> values) {
            addCriterion("fabuzhuangtai in", values, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiNotIn(List<Integer> values) {
            addCriterion("fabuzhuangtai not in", values, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiBetween(Integer value1, Integer value2) {
            addCriterion("fabuzhuangtai between", value1, value2, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andFabuzhuangtaiNotBetween(Integer value1, Integer value2) {
            addCriterion("fabuzhuangtai not between", value1, value2, "fabuzhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhetimeIsNull() {
            addCriterion("shenhetime is null");
            return (Criteria) this;
        }

        public Criteria andShenhetimeIsNotNull() {
            addCriterion("shenhetime is not null");
            return (Criteria) this;
        }

        public Criteria andShenhetimeEqualTo(Date value) {
            addCriterionForJDBCDate("shenhetime =", value, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhetimeNotEqualTo(Date value) {
            addCriterionForJDBCDate("shenhetime <>", value, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhetimeGreaterThan(Date value) {
            addCriterionForJDBCDate("shenhetime >", value, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhetimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("shenhetime >=", value, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhetimeLessThan(Date value) {
            addCriterionForJDBCDate("shenhetime <", value, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhetimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("shenhetime <=", value, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhetimeIn(List<Date> values) {
            addCriterionForJDBCDate("shenhetime in", values, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhetimeNotIn(List<Date> values) {
            addCriterionForJDBCDate("shenhetime not in", values, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhetimeBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("shenhetime between", value1, value2, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhetimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("shenhetime not between", value1, value2, "shenhetime");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiIsNull() {
            addCriterion("shenhezhuangtai is null");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiIsNotNull() {
            addCriterion("shenhezhuangtai is not null");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiEqualTo(Integer value) {
            addCriterion("shenhezhuangtai =", value, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiNotEqualTo(Integer value) {
            addCriterion("shenhezhuangtai <>", value, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiGreaterThan(Integer value) {
            addCriterion("shenhezhuangtai >", value, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiGreaterThanOrEqualTo(Integer value) {
            addCriterion("shenhezhuangtai >=", value, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiLessThan(Integer value) {
            addCriterion("shenhezhuangtai <", value, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiLessThanOrEqualTo(Integer value) {
            addCriterion("shenhezhuangtai <=", value, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiIn(List<Integer> values) {
            addCriterion("shenhezhuangtai in", values, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiNotIn(List<Integer> values) {
            addCriterion("shenhezhuangtai not in", values, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiBetween(Integer value1, Integer value2) {
            addCriterion("shenhezhuangtai between", value1, value2, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andShenhezhuangtaiNotBetween(Integer value1, Integer value2) {
            addCriterion("shenhezhuangtai not between", value1, value2, "shenhezhuangtai");
            return (Criteria) this;
        }

        public Criteria andFaburenIsNull() {
            addCriterion("faburen is null");
            return (Criteria) this;
        }

        public Criteria andFaburenIsNotNull() {
            addCriterion("faburen is not null");
            return (Criteria) this;
        }

        public Criteria andFaburenEqualTo(String value) {
            addCriterion("faburen =", value, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenNotEqualTo(String value) {
            addCriterion("faburen <>", value, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenGreaterThan(String value) {
            addCriterion("faburen >", value, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenGreaterThanOrEqualTo(String value) {
            addCriterion("faburen >=", value, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenLessThan(String value) {
            addCriterion("faburen <", value, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenLessThanOrEqualTo(String value) {
            addCriterion("faburen <=", value, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenLike(String value) {
            addCriterion("faburen like", value, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenNotLike(String value) {
            addCriterion("faburen not like", value, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenIn(List<String> values) {
            addCriterion("faburen in", values, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenNotIn(List<String> values) {
            addCriterion("faburen not in", values, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenBetween(String value1, String value2) {
            addCriterion("faburen between", value1, value2, "faburen");
            return (Criteria) this;
        }

        public Criteria andFaburenNotBetween(String value1, String value2) {
            addCriterion("faburen not between", value1, value2, "faburen");
            return (Criteria) this;
        }

        public Criteria andShenherenIsNull() {
            addCriterion("shenheren is null");
            return (Criteria) this;
        }

        public Criteria andShenherenIsNotNull() {
            addCriterion("shenheren is not null");
            return (Criteria) this;
        }

        public Criteria andShenherenEqualTo(String value) {
            addCriterion("shenheren =", value, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenNotEqualTo(String value) {
            addCriterion("shenheren <>", value, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenGreaterThan(String value) {
            addCriterion("shenheren >", value, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenGreaterThanOrEqualTo(String value) {
            addCriterion("shenheren >=", value, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenLessThan(String value) {
            addCriterion("shenheren <", value, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenLessThanOrEqualTo(String value) {
            addCriterion("shenheren <=", value, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenLike(String value) {
            addCriterion("shenheren like", value, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenNotLike(String value) {
            addCriterion("shenheren not like", value, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenIn(List<String> values) {
            addCriterion("shenheren in", values, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenNotIn(List<String> values) {
            addCriterion("shenheren not in", values, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenBetween(String value1, String value2) {
            addCriterion("shenheren between", value1, value2, "shenheren");
            return (Criteria) this;
        }

        public Criteria andShenherenNotBetween(String value1, String value2) {
            addCriterion("shenheren not between", value1, value2, "shenheren");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}